package cn.itcast;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.WeightedResponseTimeRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author: zhaojie
 * @Date: Created in 13:46 2018/7/21
 * @Description:
 */
@Configuration
@ExcludeFromComponentScan
public class TestConfiguration {

    /**
     * 使用哪种方式进行 负载
     * RandomRule               随机选取负载均衡策略。choose方法中，通过随机Random对象，在所有服务实例数量中随机找一个服务的索引号，然后从上线的服务中获取对应的服务。
     * RoundRobinRule            线性轮询负载均衡策略。
     * WeightedResponseTimeRule  响应时间作为选取权重的负载均衡策略。 响应时间越短的服务被选中的可能性大。 继承RandomRule首先如果判定没有服务或者权重还没计算出来时，会采用父类RoundRobinRule以线性轮询的方式选择服务器。
     *WeightedResponseTimeRule  采用随机数获取一个区间 响应时间越短时间
     */
    @Bean
    public IRule ribbonRule() {
        return new WeightedResponseTimeRule();
    }
}


